unit untConsultaMovimentacaoProdutosPec;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, untConsultaPadrao, dxBarDBNav, dxBar, cxClasses, DB,
  IBCustomDataSet, ActnList, cxPropertiesStore, cxContainer, cxEdit,
  cxStyles, cxGridTableView, cxLookAndFeels, cxGridCustomPopupMenu,
  cxGridPopupMenu, ImgList, cxGraphics, ExtCtrls, cxPC, cxControls,
  cxCustomData, cxFilter, cxData, cxDataStorage, cxDBData,
  cxGridCustomTableView, cxGridDBTableView, cxGridLevel, cxGridCustomView,
  cxGrid, cxCurrencyEdit, IBQuery, cxDropDownEdit, cxCalc, cxSpinEdit,
  cxLabel, cxTextEdit, cxMaskEdit, cxLookupEdit, cxDBLookupEdit,
  cxDBLookupComboBox, dxmdaset, cxDBEdit, ACBrBase, ACBrEnterTab,
  cxIntlBase, cxintl, cxLookAndFeelPainters, dxSkinsCore, dxSkinBlack,
  dxSkinBlue, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide,
  dxSkinFoggy, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian,
  dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins,
  dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
  dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
  dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinPumpkin, dxSkinSeven,
  dxSkinSharp, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
  dxSkinSummer2008, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinXmas2008Blue, dxSkinscxPCPainter, dxSkinsdxBarPainter,
  cxGridChartView, cxGridDBChartView;

type
  TfrmConsultaMovimentacaoProdutosPec = class(TfrmConsultaPadrao)
    Panel3: TPanel;
    dtEditMES: TIBStringField;
    dtEditSALDO: TIBBCDField;
    Grid: TcxGrid;
    cxGridDBTableView1: TcxGridDBTableView;
    cxGridLevel1: TcxGridLevel;
    cbProdutor: TcxDBLookupComboBox;
    cxLabel2: TcxLabel;
    cbTerceiro: TcxDBLookupComboBox;
    cxLabel5: TcxLabel;
    cbPropriedade: TcxDBLookupComboBox;
    cxLabel6: TcxLabel;
    cbOperacao: TcxDBLookupComboBox;
    cxLabel19: TcxLabel;
    cxLabel3: TcxLabel;
    cbProduto: TcxDBLookupComboBox;
    cxLabel7: TcxLabel;
    cxLabel1: TcxLabel;
    lstProdutores: TIBQuery;
    dsProdutor: TDataSource;
    dsTerceiro: TDataSource;
    lstTerceiro: TIBQuery;
    lstTerceiroCODIGO: TIntegerField;
    lstTerceiroNOME: TIBStringField;
    lstPropriedade: TIBQuery;
    lstPropriedadeCODIGO: TIntegerField;
    lstPropriedadeNOME: TIBStringField;
    dsPropriedade: TDataSource;
    lstOperacoes: TIBQuery;
    lstOperacoesCODIGO: TIntegerField;
    lstOperacoesNOME: TIBStringField;
    dsOperacoes: TDataSource;
    mtbFiltroPRODUTOR: TIntegerField;
    mtbFiltroPROPRIEDADE: TIntegerField;
    mtbFiltroOPERACAO: TIntegerField;
    mtbFiltroTERCEIRO: TIntegerField;
    mtbFiltroSALDO: TFloatField;
    mtbFiltroANO: TIntegerField;
    cxDBSpinEdit1: TcxDBSpinEdit;
    cxDBCalcEdit1: TcxDBCalcEdit;
    dtEditENTRADA: TIBBCDField;
    dtEditSAIDA: TIBBCDField;
    cxGridDBTableView1MES: TcxGridDBColumn;
    cxGridDBTableView1SALDO: TcxGridDBColumn;
    cxGridDBTableView1ENTRADA: TcxGridDBColumn;
    cxGridDBTableView1SAIDA: TcxGridDBColumn;
    mtbFiltroPRODUTO: TIntegerField;
    dsProdutos: TDataSource;
    lstProdutos: TIBQuery;
    lstProdutoresCODIGO: TIntegerField;
    lstProdutoresNOME: TIBStringField;
    lstProdutosCODIGO: TIntegerField;
    lstProdutosNOME: TIBStringField;
    lstParametro: TIBQuery;
    lstParametroCODIGO: TIntegerField;
    lstParametroUSUARIO: TIntegerField;
    lstParametroDATA_MOVTO: TDateField;
    lstParametroOPERACAO: TIntegerField;
    lstParametroPRODUTOR: TIntegerField;
    lstParametroTERCEIRO: TIntegerField;
    lstParametroPROPRIEDADE: TIntegerField;
    lstParametroPRODUTO: TIntegerField;
    lstParametroANO_BASE: TIntegerField;
    GridLevel1: TcxGridLevel;
    GridDBChartView1: TcxGridDBChartView;
    GridDBChartView1Series1: TcxGridDBChartSeries;
    GridDBChartView1Series2: TcxGridDBChartSeries;
    GridDBChartView1Series3: TcxGridDBChartSeries;
    cxStyle15: TcxStyle;
    procedure FormShow(Sender: TObject);
    procedure ActFilterExecute(Sender: TObject);
    procedure GridEnter(Sender: TObject);
    procedure lstOperacoesBeforeOpen(DataSet: TDataSet);
    procedure mtbFiltroPRODUTORValidate(Sender: TField);
    procedure lstParametroBeforeOpen(DataSet: TDataSet);
  private
    { Private declarations }
    procedure abreconsultas;
  public
    { Public declarations }
  end;

var
  frmConsultaMovimentacaoProdutosPec: TfrmConsultaMovimentacaoProdutosPec;

implementation

uses DateUtils, untDmPrincipal;

{$R *.dfm}

procedure TfrmConsultaMovimentacaoProdutosPec.FormShow(Sender: TObject);
begin
  inherited;
  lstProdutores.Close;
  lstProdutores.Open;

  abreconsultas;

  cbProdutor.SetFocus;
  mtbFiltroSALDO.Value := 0;
  lstParametro.Close;
  lstParametro.Open;
  
  if (lstParametroANO_BASE.AsInteger > 0) then
    mtbFiltroANO.Value := lstParametroANO_BASE.AsInteger
  else
    mtbFiltroANO.Value := YearOf(date);
end;

procedure TfrmConsultaMovimentacaoProdutosPec.ActFilterExecute(Sender: TObject);
begin
  inherited;
  Grid.SetFocus;
  dtEdit.Close;
  dtEdit.ParamByName('produtor').value := mtbFiltroPRODUTOR.AsInteger;
  dtEdit.ParamByName('propriedade').value := mtbFiltroPROPRIEDADE.AsInteger;
  dtEdit.ParamByName('operacao').value := mtbFiltroOPERACAO.AsInteger;
  dtEdit.ParamByName('terceiro').value := mtbFiltroTERCEIRO.AsInteger;
  dtEdit.ParamByName('produto').value := mtbFiltroPRODUTO.AsInteger;
  dtEdit.ParamByName('ano_base').value := mtbFiltroANO.AsInteger;
  dtEdit.ParamByName('saldo').value := mtbFiltroSALDO.AsFloat;
  dtEdit.Open;

end;

procedure TfrmConsultaMovimentacaoProdutosPec.GridEnter(Sender: TObject);
begin
  inherited;
  ActFilter.Execute;
end;

procedure TfrmConsultaMovimentacaoProdutosPec.lstOperacoesBeforeOpen(
  DataSet: TDataSet);
begin
  inherited;
 TIBQuery(DataSet).ParamByName('codigo').value := mtbFiltroPRODUTOR.AsInteger;
 TIBQuery(DataSet).ParamByName('ano').value := mtbFiltroANO.AsInteger;
end;

procedure TfrmConsultaMovimentacaoProdutosPec.abreconsultas;
begin
  lstTerceiro.Close;
  lstTerceiro.Open;

  lstProdutos.Close;
  lstProdutos.Open;

  lstPropriedade.Close;
  lstPropriedade.Open;


  lstOperacoes.Close;
  lstOperacoes.Open;
end;

procedure TfrmConsultaMovimentacaoProdutosPec.mtbFiltroPRODUTORValidate(
  Sender: TField);
begin
  inherited;
  abreconsultas;
end;

procedure TfrmConsultaMovimentacaoProdutosPec.lstParametroBeforeOpen(
  DataSet: TDataSet);
begin
  inherited;
  lstParametro.ParamByName('usuario').value := dmPrincipal.usuario_logado_codigo;
end;

end.
